package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 勘测后的初步方案对象 erp_survey_programme_info
 * @author wutao
 * @date 2024-05-22
 */
@TableName ("erp_survey_programme_info")
@ApiModel (value = "erp_survey_programme_info对象" , description = "勘测后的初步方案")
@Data
public class SurveyProgrammeEntity extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId (value = "id" , type = IdType.INPUT)
    private String id;

    /**
     * 客户Id
     */
    @ApiModelProperty ("客户Id")
    @TableField ("customer_id")
    @Excel (name = "客户Id")
    private String customerId;

    /**
     * 勘测报告Id，获取报告所填内容
     */
    @ApiModelProperty ("勘测报告Id，获取报告所填内容")
    @TableField ("survey_report_id")
    @Excel (name = "勘测报告Id，获取报告所填内容")
    private String surveyReportId;

    /**
     * 概算来源;1:己方概算;2:客户提供
     */
    @ApiModelProperty ("概算来源;1:己方概算;2:客户提供")
    @TableField ("estimate_source")
    @Excel (name = "概算来源;1:己方概算;2:客户提供")
    private Integer estimateSource;

    /**
     * 方案名称
     */
    @ApiModelProperty ("方案名称")
    @TableField ("programme_name")
    @Excel (name = "方案名称")
    private String programmeName;

    /**
     * 方案出具日期
     */
    @ApiModelProperty ("方案出具日期")
    @TableField ("programme_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "方案出具日期" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date programmeTime;

    /**
     * 方案出具人Id，选择
     */
    @ApiModelProperty ("方案出具人Id，选择")
    @TableField ("programme_user_id")
    @Excel (name = "方案出具人Id，选择")
    private String programmeUserId;

    /**
     * 报价金额
     */
    @ApiModelProperty ("报价金额")
    @TableField ("money")
    @Excel (name = "报价金额")
    private String money;

    /**
     * 添加人Id,登录用户Id
     */
    @ApiModelProperty ("添加人Id,登录用户Id")
    @TableField ("user_id")
    @Excel (name = "添加人Id,登录用户Id")
    private String userId;

    /**
     * 方案内容
     */
    @ApiModelProperty ("方案内容")
    @TableField ("programme_content")
    @Excel (name = "方案内容")
    private String programmeContent;

    /**
     * 客户反馈
     */
    @ApiModelProperty ("客户反馈")
    @TableField ("customer_feedback")
    @Excel (name = "客户反馈")
    private String customerFeedback;

    /**
     * 备注
     */
    @ApiModelProperty ("备注")
    @TableField ("remarks")
    @Excel (name = "备注")
    private String remarks;

    /**
     * 更新时间
     */
    @ApiModelProperty ("更新时间")
    @TableField ("change_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "更新时间" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date changeTime;

    /**
     * $column.columnComment
     */
    @ApiModelProperty ("更新时间")
    @TableField ("is_used")
    @Excel (name = "更新时间")
    private Integer isUsed;

    @Override
    public String toString () {
        return new ToStringBuilder ( this, ToStringStyle.MULTI_LINE_STYLE )
                .append ( "id" , getId () )
                .append ( "customerId" , getCustomerId () )
                .append ( "surveyReportId" , getSurveyReportId () )
                .append ( "estimateSource" , getEstimateSource () )
                .append ( "programmeName" , getProgrammeName () )
                .append ( "programmeTime" , getProgrammeTime () )
                .append ( "programmeUserId" , getProgrammeUserId () )
                .append ( "money" , getMoney () )
                .append ( "userId" , getUserId () )
                .append ( "remarks" , getRemarks () )
                .append ( "createTime" , getCreateTime () )
                .append ( "changeTime" , getChangeTime () )
                .append ( "isUsed" , getIsUsed () )
                .toString ();
    }
}
